<?php

/***********************************************/
/*CONTENIDO*/
/***********************************************/
echo" <div class=\"pag_content\">
 	<div class=\"pag_content_title\">
		<div class=\"pag_title_cap\">Cap&iacute;tulo 6: </div>
		<div class=\"pag_title_cont\">Recuperar errores de Usuario</div>
    </div>
    <div class=\"pag_content_body\">         
	<div class=\"contenido_principal\">	
		<br />";
		
/***********************************************/
/*TITULO PARTE*/
/***********************************************/

echo"	<div class=\"parrafo_titulo\">
		Flashback Drop
	</div>";		

	
/***********************************************/
/*CONTENIDO*/
/***********************************************/

echo"
<div class=\"parrafo\" align=\"justify\">
Se utiliza para salvar una copia de la base de datos y de sus objetos en la papelera de reciclaje (Recycle Bin) para poder salvarlos si fuese necesario. Los que proporciona al usuario una herramienta para recuperar una tabla que haya eliminado por error.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&gt; flashback table mogu.Prueba to before drop;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
La recuperacion de las tablas que se han eliminado y de sus objetos dependientes es posible mientras estos sigan en la Recycle Bin.
</div>
<div class=\"parrafo\" align=\"justify\">
Vamos a ver un poco mas en detalle como funciona la papelera de reciclaje, para asi entender mas en detalle las ventajas y las limitaciones de esta herramienta.
</div>
<h3>1.Recycle Bin</h3>
<div class=\"parrafo\" align=\"justify\">
En la papelera de reciclaje se almacenan las tablas y los objetos dependientes que se han eliminado mediante un drop.
</div>
<div class=\"parrafo\" align=\"justify\">
Recycle bin tiene una convencion para asignar nombres a los elementos eliminados para asi poder recuperar elementos que se llamen igual y que sean de esquemas diferentes.
</div>
<div class=\"parrafo\" align=\"justify\">
Para ver que elementos se ecuentran en la papelera de reciclaje haremos:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&GT; SELECT OWNER, OBJECT_NAME, ORIGINAL_NAME, OPERATION,TYPE FROM DBA_RECYCLEBIN;

OWNER  OBJECT_NAME                	ORIGINAL_NAME                	OPERATION TYPE
------ ------------------------------ -------------------------------- --------- -------------------------
MOGU   BIN\$nlD0/69px2TgQAB/AQAXcg==\$0 PRUEBA                       	DROP  	TABLE


</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Otras vistas que nos pueden ser utiles: RECYCLEBIN, USER_RECYCLEBIN y DBA_RECYCLEBIN. Aqui podemos obtener diferentes tipos de informacion como el nombre asignado al elemento eliminado, el nombre original, el tipo de operacion que ha eliminado ese objeto e incluso si se puede recuperar o prugar definitiva mente.
</div>
<div class=\"parrafo\" align=\"justify\">
Podemos consultar directamente el elemento eliminado utilizando su nuevo nombre.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&gt; select * from \"BIN\$nlD0/69px2TgQAB/AQAXcg==\$0\";
</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Hay que saber que cuando se borra una tabla de un esquema ese espacio no se recupera hasta que ese objeto no se elimina de la papelera de reciclaje.
</div>
<div class=\"parrafo\" align=\"justify\">
Para eliminar un objeto de forma definitiva haremos.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&gt; PURGE table \"BIN\$nlD0/69px2TgQAB/AQAXcg==\$0\";

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Podriamos incluso purgar todos los elementos que pertenecen a un tablespace y a un determinado usuario
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&gt; PURGE tablespace USERS user MOGU;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Cuando hacemos DROP USER user CASCADE, eliminara todos los objetos de un esquema, en este caso los objetos elminados no se almacenaran en la papelera de reciclaje.
</div>
<div class=\"parrafo\" align=\"justify\">
Para vaciar la papelera de reciclaje podemos utilizar:
</div>
<div class=\"parrafo\" align=\"justify\">
a) Para eliminar nuestra papelera de reciclaje
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&gt; PURGE RECYCLEBIN;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
b) Para borrar todos los objetos de todos los usuarios que estan almacenados en la papelera de reciclaje.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&gt; PURGE DBA_RECYCLEBIN;

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Para evitar que las tablas almacenadas en la papelera de reciclaje ocupen mucho espacio podemos eleminar los indices de esas tablas ya que en el caso de que las recuperemos podemos hacer un rebuild de los indices.
</div>
<div class=\"parrafo\" align=\"justify\">
Existen algunas limitaciones a la hora de utilizar la papelera de reciclaje:
<div class=\"parrafo_lista_sub\">
a) La papelera unicamene almacenara objetos de tablespaces que no sean de sistema y que hayan sido definidos como locally managed.<br />

b) No se garantiza un tiempo de permanencia, todo depende de la actividad de la base de datos.<br />

c) Hemos vistos que podemos lanzar queriies de consulta sobre objetos que han sido eliminados pero no podemos lanzar consultas DDL o DML.<br />

d) Se puede dar la imposiblidad de recuperar una tabla cuando por motivos de espacio se han eliminado alguno de sus elementos dependientes.<br />
</div>
</div>
";
	
echo"
	</div> 		 
    </div>
    <div class=\"pag_content_footer\">
    </div>
    <div class=\"pag_content_nav\">		
		<div class=\"pag_contenido_left\">
			<a class=\"cap_next\" href=\"ocp_main.php?cap=6&part=0\">	&lt; Anterior </a>
		 </div>
		<div class=\"pag_contenido_right\" align=\"right\">	
			<a  class=\"cap_next\" href=\"ocp_main.php?cap=6&part=2\">	Siguiente &gt;</a>
		 </div>
	</div>      
</div>
";


?>